home *** CD-ROM | disk | FTP | other *** search
- class FPUI.Slider extends FPUI.Component
- {
- var m_depth = 0;
- var m_minValue = 0;
- var m_maxValue = 100;
- var m_range = 100;
- var m_value = 0;
- var m_smStepAmount = 1;
- var m_lgStepAmount = 5;
- var m_horizontal = true;
- var m_thumbMC = null;
- var m_scrollTrackMC = null;
- var m_snapValues = null;
- var m_snapThreshold = 0;
- var m_thumbPressed = false;
- var m_distanceFromCenter = 0;
- var m_scrollableArea = 0;
- var m_keyController = null;
- function Slider()
- {
- var _loc1_ = this;
- super();
- _loc1_.m_eatsNavKeysWhenFocused = true;
- _loc1_.m_snapValues = new Array();
- _loc1_.m_width = !_loc1_.m_horizontal ? _loc1_._height : _loc1_._width;
- _loc1_._xscale = 100;
- _loc1_._yscale = 100;
- _loc1_._rotation = 0;
- _loc1_.attachMovie("fsl_scrollTrack","m_scrollTrackMC",_loc1_.m_depth++,{_y:1});
- _loc1_.attachMovie("fsl_pointerThumb","m_thumbMC",_loc1_.m_depth++);
- _loc1_.setEnabled(_loc1_.enabled);
- _loc1_.setSliderProperties(_loc1_.m_minValue,_loc1_.m_maxValue);
- _loc1_.setSize(_loc1_.m_width);
- _loc1_.setHorizontal(_loc1_.m_horizontal);
- }
- function getValue()
- {
- return this.m_value;
- }
- function setZoomKeyController(controller)
- {
- this.m_keyController = controller;
- }
- function setSize(pwidth)
- {
- var _loc1_ = this;
- var _loc2_ = pwidth;
- if(_loc2_ < 4)
- {
- _loc2_ = 4;
- }
- _loc1_.m_width = _loc2_;
- _loc1_.m_scrollableArea = !_loc1_.m_thumbMC ? _loc1_.m_width - 5 : _loc1_.m_width - 2 - _loc1_.m_thumbMC._width;
- _loc1_.m_scrollTrackMC._x = _loc1_.m_width / 2;
- _loc1_.setValue(_loc1_.m_value);
- }
- function setSliderProperties(min, max)
- {
- var _loc1_ = this;
- if(max <= min)
- {
- return false;
- }
- _loc1_.m_maxValue = Number(max);
- _loc1_.m_minValue = Number(min);
- if(isNaN(_loc1_.m_maxValue) || isNaN(_loc1_.m_minValue))
- {
- return false;
- }
- _loc1_.m_range = _loc1_.m_maxValue - _loc1_.m_minValue;
- _loc1_.setValue(_loc1_.m_value);
- return true;
- }
- function setSnapValues(a)
- {
- this.m_snapValues = a;
- }
- function setSnapThreshold(i)
- {
- this.m_snapThreshold = i;
- }
- function setEnabled(penable)
- {
- var _loc1_ = this;
- var _loc2_ = penable;
- super.setEnabled(_loc2_);
- _loc1_.enabled = _loc2_;
- if(!_loc2_)
- {
- _loc1_.m_scrollTrackMC.gotoAndStop("disabled");
- _loc1_.m_thumbMC.gotoAndStop("disabled");
- delete _loc1_.onPress;
- delete _loc1_.onRelease;
- delete _loc1_.onReleaseOutside;
- delete _loc1_.onRollOver;
- delete _loc1_.onRollOut;
- delete _loc1_.onMouseMove;
- }
- else
- {
- _loc1_.m_scrollTrackMC.gotoAndStop(1);
- _loc1_.m_thumbMC.gotoAndStop(1);
- _loc1_.onPress = _loc1_.myOnPress;
- _loc1_.onRelease = _loc1_.myOnRelease;
- _loc1_.onReleaseOutside = _loc1_.myOnRelease;
- _loc1_.onRollOver = _loc1_.myOnRollOver;
- _loc1_.onRollOut = _loc1_.myOnRollOut;
- }
- _loc1_.setSize(_loc1_.m_width);
- }
- function setHorizontal(horizontal)
- {
- var _loc1_ = this;
- if(horizontal)
- {
- _loc1_._rotation = 0;
- _loc1_.m_scrollTrackMC._rotation = 0;
- _loc1_.m_scrollTrackMC._yscale = 100;
- }
- else
- {
- _loc1_._rotation = 90;
- _loc1_.m_scrollTrackMC._rotation = 180;
- _loc1_.m_scrollTrackMC._yscale = -100;
- }
- _loc1_.m_horizontal = horizontal;
- _loc1_.setValue(_loc1_.getValue());
- }
- function setValue(value)
- {
- var _loc1_ = this;
- var _loc3_ = value;
- _loc3_ = Math.min(Math.max(_loc3_,_loc1_.m_minValue),_loc1_.m_maxValue);
- if(_loc1_.m_snapValues != undefined && _loc1_.m_snapValues.length > 0)
- {
- var _loc2_ = 0;
- while(_loc2_ < _loc1_.m_snapValues.length)
- {
- if(_loc3_ >= _loc1_.m_snapValues[_loc2_] - _loc1_.m_snapThreshold && _loc3_ <= _loc1_.m_snapValues[_loc2_] + _loc1_.m_snapThreshold)
- {
- _loc3_ = _loc1_.m_snapValues[_loc2_];
- break;
- }
- _loc2_ = _loc2_ + 1;
- }
- }
- _loc1_.m_value = _loc3_;
- var xPos = _loc1_.valueToCoord(_loc3_);
- _loc1_.m_thumbMC._x = xPos;
- var ltMC = _loc1_.m_scrollTrackMC.left_mc;
- var midLtMC = _loc1_.m_scrollTrackMC.middleLeft_mc;
- var midRtMC = _loc1_.m_scrollTrackMC.middleRight_mc;
- var rtMC = _loc1_.m_scrollTrackMC.right_mc;
- ltMC._x = (- _loc1_.m_width) / 2;
- if(!_loc1_.m_horizontal)
- {
- xPos = _loc1_.valueToCoord(_loc1_.m_range - _loc3_ + _loc1_.m_minValue * 2);
- }
- midLtMC._width = xPos + _loc1_.m_thumbMC._width / 2;
- midLtMC._x = ltMC._x + ltMC._width;
- midRtMC._width = _loc1_.m_width - xPos - ltMC._width - rtMC._width - (_loc1_.m_thumbMC._width - 2) / 2;
- midRtMC._x = midLtMC._x + midLtMC._width;
- rtMC._x = midRtMC._x + midRtMC._width;
- _loc1_.executeCallBack();
- }
- function getValueFromThumb()
- {
- var _loc1_ = this;
- var _loc2_ = undefined;
- if(_loc1_.m_thumbPressed)
- {
- _loc2_ = _loc1_._xmouse - _loc1_.m_distanceFromCenter;
- }
- else
- {
- _loc2_ = _loc1_._xmouse - _loc1_.m_thumbMC._width / 2;
- }
- _loc2_ = Math.max(1,Math.min(_loc2_,_loc1_.m_scrollableArea + 1));
- return _loc1_.coordToValue(_loc2_);
- }
- function setValueFromThumb()
- {
- this.setValue(this.getValueFromThumb());
- }
- function myOnMouseMove()
- {
- this.setValueFromThumb();
- }
- function go(s)
- {
- var _loc1_ = this;
- if(s == "up")
- {
- if(_loc1_.getFocused())
- {
- _loc1_.m_thumbMC.gotoAndStop("focus");
- }
- else
- {
- _loc1_.m_thumbMC.gotoAndStop(1);
- }
- }
- else
- {
- _loc1_.m_thumbMC.gotoAndStop(s);
- }
- }
- function onComponentKillFocus()
- {
- super.onComponentKillFocus();
- this.go("up");
- }
- function myOnRelease()
- {
- var _loc1_ = this;
- _loc1_.m_focused = false;
- _loc1_.setValueFromThumb();
- delete _loc1_.onMouseMove;
- _loc1_.m_thumbPressed = false;
- _loc1_.m_distanceFromCenter = 0;
- _loc1_.go("up");
- Selection.setFocus(null);
- }
- function myOnPress()
- {
- var _loc1_ = this;
- _loc1_.pressFocus();
- _loc1_.m_thumbPressed = _loc1_.m_thumbMC.hitTest(_root._xmouse,_root._ymouse);
- if(_loc1_.m_thumbPressed)
- {
- _loc1_.m_distanceFromCenter = _loc1_._xmouse - _loc1_.m_thumbMC._x;
- }
- _loc1_.setValueFromThumb();
- _loc1_.onMouseMove = _loc1_.myOnMouseMove;
- _loc1_.go("pressed");
- }
- function myOnRollOver()
- {
- this.go("over");
- }
- function myOnRollOut()
- {
- this.go("up");
- }
- function coordToValue(coord)
- {
- var _loc1_ = this;
- if(_loc1_.m_horizontal)
- {
- return (coord - 1) / _loc1_.m_scrollableArea * _loc1_.m_range + _loc1_.m_minValue;
- }
- return Math.abs(coord - 1 - _loc1_.m_scrollableArea) / _loc1_.m_scrollableArea * _loc1_.m_range + _loc1_.m_minValue;
- }
- function valueToCoord(value)
- {
- var _loc1_ = this;
- if(_loc1_.m_horizontal)
- {
- return (value - _loc1_.m_minValue) / _loc1_.m_range * _loc1_.m_scrollableArea + 1;
- }
- return Math.abs(value - (_loc1_.m_range + _loc1_.m_minValue)) / _loc1_.m_range * _loc1_.m_scrollableArea + 1;
- }
- function onComponentKeyDown()
- {
- var _loc1_ = this;
- if(_loc1_.m_enable)
- {
- var increase = !!_loc1_.m_horizontal ? 39 : 38;
- var decrease = !!_loc1_.m_horizontal ? 37 : 40;
- var _loc2_ = Key.getCode();
- var _loc3_ = !Key.isDown(17) ? _loc1_.m_smStepAmount : _loc1_.m_lgStepAmount;
- if(_loc2_ == increase)
- {
- if(_loc1_.m_keyController != null)
- {
- _loc1_.m_keyController.zoomIn();
- }
- else
- {
- _loc1_.setValue(_loc1_.m_value + _loc3_);
- }
- }
- else if(_loc2_ == decrease)
- {
- if(_loc1_.m_keyController != null)
- {
- _loc1_.m_keyController.zoomOut();
- }
- else
- {
- _loc1_.setValue(_loc1_.m_value - _loc3_);
- }
- }
- }
- }
- }
-